#ifndef _AUDIO_SR_H_
#define _AUDIO_SR_H_

#include "esp_afe_sr_iface.h"
#include "esp_afe_sr_models.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/ringbuf.h"
#include "bsp_sound.h"

typedef struct
{
    bool sr_running;                                // 语音识别是否运行
    bool is_wake;                                   // 是否已经唤醒
    vad_state_t current_vad_state;                  // 当前的语音状态
    vad_state_t last_vad_state;                     // 上一次的语音状态
    void (*wake_cb)(void);                          // 唤醒回调
    void (*vad_state_change_cb)(vad_state_t state); // vad状态变化回调
    RingbufHandle_t ringBuf;                        // 环形缓冲区句柄
} my_sr_t;
extern my_sr_t mt_sr;
void audio_sr_init(void);

void audio_sr_start(RingbufHandle_t ringBuf, void (*wake_up_callback)(void), void (*vad_state_change_callback)(vad_state_t state));

#endif // _AUDIO_SR_H_